Skip to main content Link Search Menu Expand Document (external link)

variables

Table of contents

  1. 전역 변수
  2. 사이트 변수
  3. 페이지 변수
  4. Paginator

Jekyll 은 작업이 필요한 파일을 찾아 사이트 내부를 이리저리 돌아다닙니다.
작업 대상은 Front matter을 가진 모든 파일입니다.
Jekyll 은 Liquid를 통해 각각의 작업 대상 파일마다 다양한 데이터를 생성합니다. 사용할 수 있는 데이터 목록은 다음과 같습니다.

전역 변수

변수설명
site사이트 정보 + _config.yml 의 환경설정 정보.
page페이지 관련 정보 + Front matter.
Front matter에서 설정한 사용자 변수도 여기에 포함된다.
layout레이아웃 관련 정보 + Front matter.
Front matter의 레이아웃에 설정한 사용자 변수도 여기에 포함된다.
content레이아웃 파일에서, 랩된 포스트/페이지의 렌더링된 컨텐츠.
포스트나 페이지 파일에서 정의되지 않는다.
paginator이 변수는 환경설정 옵션 paginate 가 설정되어 있을 때 사용할 수 있다.
더 자세한 내용에 대해서는 페이지 나누기를 참조.

사이트 변수

변수설명
site.time현재 시간 (jekyll 명령을 실행한 시간).
site.pages모든 페이지 목록.
site.posts시간 역순의 모든 포스트 목록.
site.related_posts처리중인 파일이 포스트인 경우에, 최대 10 개의 연관 포스트 목록이 이 변수에 할당된다. 디폴트로 가장 최신 포스트 10 개를 가리킨다. 느린 속도를 감수하고 고품질의 결과를 얻으려면, jekyll명령을 --lsi (Latent Semantic Indexing) 옵션과 함께 실행한다. 단, GitHub Pages 가 사이트를 생성할 때는 lsi 옵션을 지원하지 않는다.
site.static_files정적 파일 (다시 말해, Jekyll 의 변환기나 Liquid 렌더러가 처리하지 않는 파일들) 전체 목록. 모든 파일은 다섯 가지 속성을 갖고 있다:
pathmodified_time, name, basename, extname.
site.html_pages.html 로 끝나는 site.pages 목록의 하위 세트.
site.html_files.html 로 끝나는 site.static_files 목록의 하위 세트.
site.collections모든 콜렉션 목록 (포스트 포함).
site.data_data 디렉토리에 있는 YAML 파일에서 읽어들인 데이터 목록.
site.documents각 콜렉션의 모든 문서 목록.
site.categories.CATEGORYCATEGORY 카테고리에 속한 모든 포스트 목록.
site.tags.TAGTAG 태그가 붙은 모든 포스트 목록.
site.url_config.yml 에 설정한 사이트의 URL.
예를 들어, 환경설정 파일에 url: http://mysite.com 라는 내용이 있으면, Liquid 변수 site.url 로 이 값에 접근할 수 있다.
개발 환경에서는 한 가지 예외가 있는데, 개발 환경에서 jekyll serve 를 실행하면 site.urlhostport, SSL 관련 옵션으로 설정된다.
기본값은 url:http://localhost:4000 이다.
site.[CONFIGURATION_DATA]명령행이나 _config.yml 을 통해 설정된 모든 변수들은 site 변수를 통해 사용할 수 있다.
예를 들어, 환경설정 파일에 foo: bar 가 있다면, site.foo 와 같이 Liquid 로 접근할 수 있다.
watch 모드가 켜진 경우에도 _config.yml 파일의 변경사항은 자동으로 적용되지 않기 때문에, 변경된 변수를 적용하려면 Jekyll 을 재시작해야 한다.

페이지 변수

변수설명
page.content페이지의 컨텐츠.
어떤 Liquid 처리가 되었는지, 어떤 page 인지에 따라 렌더링 되었을 수도 아닐 수도 있다.
page.title페이지의 제목.
page.excerpt렌더링 되지 않은, 문서의 발췌 부분.
page.url도메인을 제외하고, 슬래시 문자로 시작하는 포스트 URL.
예시, /2008/12/14/my-post.html
page.date포스트에 할당된 날짜.
포스트의 Front matter에 YYYY-MM-DD HH:MM:SS (UTC 기준), 또는 YYYY-MM-DD HH:MM:SS +/-TTTT (UTC 로부터의 오프셋을 사용한 타임 존 지정.
예시, 2008-12-14 10:30:00 +0900) 형식으로 새로운 날짜/시간을 지정하여 덮어쓸 수 있다.
page.id포스트나 콜렉션의 문서에 대한 유일한 식별자 (RSS 피드에 유용함).
예시, /2008/12/14/my-post/my-collection/my-document
page.categories이 포스트가 속한 카테고리들의 목록.
_posts 디렉토리의 상위 디렉토리 구조가 카테고리를 결정한다.
예를 들어, 경로가 /work/code/_posts/2008-12-24-closures.md 인 포스트에서는 이 변수가 ['work', 'code'] 로 설정되어 있다. 이 변수는 Front matter에서도 설정할 수 있다.
page.collection문서가 속한 컬렉션의 label.
예, 하나의 post는 posts , _puppies/rover.mdpuppies .
컬렉션의 일부분이 아니라면 Empty String이 반환된다.
page.tags포스트에 붙어있는 태그 목록.
이 변수는 Front matter에 설정할 수 있다.
page.dirsource directory 와 file 사이의 경로 예, /pages/.
front matterpermalink에 의해 overrided.
page.namefilename. 예, about.md
page.path페이지 또는 포스트의 실제 경로.
활용 예시: 페이지 또는 포스트에 대한 GitHub 소스를 링크하기. 이 변수는 Front matter에서 덮어쓸 수 있다.
page.nextsite.posts 의 포스트 중에서 현재 포스트 위치를 기준으로 한 다음 포스트의 상대 경로. 마지막 항목이라면 nil 을 반환한다.
page.previoussite.posts 의 포스트 중에서 현재 포스트 위치를 기준으로 한 이전 포스트의 상대 경로. 첫 번째 항목이라면 nil 을 반환한다.

ProTip™: 사용자정의 Front Matter를 사용하세요

모든 사용자정의 Front matter은 page 변수에서 사용할 수 있습니다. 예를 들어, 페이지 Front matter에 custom_css: true 를 설정한 경우, page.custom_css 로 해당 값을 사용할 수 있습니다.

레이아웃에서 Front matter을 지정했다면, layout 을 통해 접근할 수 있습니다. 예를 들어, 레이아웃의 Front matter에 class: full_page 라고 설정했다면, 해당 레이아웃과 그 부모 레이아웃에서 layout.class 로 사용할 수 있습니다.

Paginator

변수설명
paginator.page현재 페이지 번호
paginator.per_page페이지 당 포스트 수
paginator.posts현재 페이지의 포스트들
paginator.total_posts전체 포스트 개수
paginator.total_pages전체 페이지 개수
paginator.previous_page이전 페이지 번호. 이전 페이지가 없는 경우 nil
paginator.previous_page_path이전 페이지 경로. 이전 페이지가 없는 경우 nil
paginator.next_page다음 페이지 번호. 다음 페이지가 없는 경우 nil
paginator.next_page_path다음 페이지 경로. 다음 페이지가 없는 경우 nil

Paginator 변수 사용 위치

이 변수들은 오직 인덱스 파일에서만 사용할 수 있지만, /blog/index.html 같은 하위 디렉토리에 위치할 수 있다.